﻿using CQRSFramework.Events.Impl;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace CQRSFramework.Events
{
    public interface IEventStore
    {
        DomainEventStream Find(string aggregateRootId, string commandId);
        IEnumerable<DomainEventStream> Find(string aggregateRootId);
        Task<IEnumerable<DomainEventStream>> FindAsync(string aggregateRootId);
        void Append(DomainEventStream eventStream);
        Task AppendAsync(DomainEventStream eventStream);
    }
}
